home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / short15.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  33KB  |  1,596 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. /*No:RUN_FEATURE_2.use_current_state*/
  10. /*No:RUN_FEATURE_2.arguments*/
  11. /*No:RUN_FEATURE_2.actuals_clients*/
  12.  
  13.  
  14. void r343initialize(T343* C){
  15. C->_result_type=((T300*)((C)->_base_feature/*32*/))->_result_type/*20*/;
  16. C->_result_type=X46to_runnable((C)->_result_type/*36*/,(C)->_current_type/*4*/);
  17. }
  18.  
  19.  
  20. T0* r343start_position(T343* C){
  21. T0* R=NULL;
  22. R=r300start_position((T300*)((C)->_base_feature/*32*/));
  23. return R;
  24. }
  25. /*No:RUN_FEATURE_2.require_assertion*/
  26. /*No:RUN_FEATURE_2.clients_memory*/
  27. /*No:RUN_FEATURE_2.ucs_not_computed*/
  28. /*No:RUN_FEATURE_2.current_type*/
  29.  
  30.  
  31. void r343add_client(T343* C,T0* a1){
  32. T2 _i=0;
  33. /*[IF*/
  34. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  35. {T321*n=malloc(sizeof(*n));
  36. *n=M321;
  37. r321with_capacity(n,4);
  38. C->_actuals_clients=(T0*)n;
  39. }
  40. r321add_last((T321*)((C)->_actuals_clients/*12*/),a1);
  41. }
  42. else{
  43. _i=r321fast_index_of((T321*)((C)->_actuals_clients/*12*/),a1);
  44. /*[IF*/
  45. if((_i)>(((T321*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  46. r321add_last((T321*)((C)->_actuals_clients/*12*/),a1);
  47. }
  48. /*FI]*/
  49. }
  50. /*FI]*/
  51. r310add_client((T310*)(r343run_class(C)),a1);
  52. }
  53.  
  54.  
  55. T0* r343run_class(T343* C){
  56. T0* R=NULL;
  57. R=X46run_class((C)->_current_type/*4*/);
  58. return R;
  59. }
  60. /*No:RUN_FEATURE_2.result_type*/
  61. /*No:RUN_FEATURE_2.base_feature*/
  62. /*No:RUN_FEATURE_2.ensure_assertion*/
  63.  
  64.  
  65. void r343make(T343* C,T0* a1,T0* a2,T0* a3){
  66. C->_current_type=a1;
  67. C->_name=a2;
  68. C->_base_feature=a3;
  69. /*[IRF3.5add_rf*/r317put(((T317*)(((T310*)(r343run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X77to_key(a2));
  70. /*]*/
  71. r59incr_magic_count((T59*)(oBC11small_eiffel));
  72. C->_use_current_state=15;
  73. r59push((T59*)(oBC11small_eiffel),(T0*)C);
  74. r343initialize(C);
  75. r59pop((T59*)(oBC11small_eiffel));
  76. }
  77. /*No:RUN_FEATURE_2.name*/
  78. /*No:RUN_FEATURE_2.local_vars*/
  79.  
  80.  
  81. T2 r343arg_count(void){
  82. T2 R=0;
  83. /*[IF*/
  84. /*AF*//*AE*/
  85. /*FI]*/
  86. return R;
  87. }
  88.  
  89.  
  90. T0* r343clients(T343* C){
  91. T0* R=NULL;
  92. T0* _bfbc=NULL;
  93. T0* _bc=NULL;
  94. /*[IF*/
  95. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  96. _bc=X46base_class((C)->_current_type/*4*/);
  97. _bfbc=((T300*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  98. /*[IF*/
  99. if((_bc)==((void*)(_bfbc))){
  100. R=((T300*)((C)->_base_feature/*32*/))->_clients/*16*/;
  101. }
  102. else{
  103. R=r22clients_for(((T22*)_bc),(C)->_name/*16*/);
  104. }
  105. /*FI]*/
  106. C->_clients_memory=R;
  107. }
  108. else{
  109. R=(C)->_clients_memory/*8*/;
  110. }
  111. /*FI]*/
  112. return R;
  113. }
  114.  
  115.  
  116. T6 r343is_exported_in(T343* C,T0* a1){
  117. T6 R=0;
  118. R=r94gives_permission_to((T94*)(r343clients(C)),a1);
  119. return R;
  120. }
  121.  
  122.  
  123. void r79make_n(T79* C,T0* a1){
  124. T2 _j=0;
  125. T2 _i=0;
  126. _i=(((T80*)a1))->_upper/*8*/;
  127. while (!((_i)<(0))) {
  128. _j=(_i)-(1);
  129. while (!((_j)<(0))) {
  130. /*[IF*/
  131. if((X77to_key(/*(IRF4.6item*/((((T80*)a1))->_storage/*0*/)[_i]/*)*/))==((void*)(X77to_key(/*(IRF4.6item*/((((T80*)a1))->_storage/*0*/)[_j]/*)*/)))){
  132. r79fe_multiple(/*(IRF4.6item*/((((T80*)a1))->_storage/*0*/)[_i]/*)*/,/*(IRF4.6item*/((((T80*)a1))->_storage/*0*/)[_j]/*)*/);
  133. }
  134. /*FI]*/
  135. _j=(_j)-(1);
  136. }
  137. _i=(_i)-(1);
  138. }
  139. C->_first=/*(IRF4.6item*/((((T80*)a1))->_storage/*0*/)[0]/*)*/;
  140. _i=(((T80*)a1))->_upper/*8*/;
  141. /*[IF*/
  142. if((_i)>(0)){
  143. {T80*n=malloc(sizeof(*n));
  144. *n=M80;
  145. r80make(n,_i);
  146. C->_remainder=(T0*)n;
  147. }
  148. _j=0;
  149. while (!((_i)==(0))) {
  150. /*[IRF3.5put*/(((T80*)((C)->_remainder/*4*/))->_storage/*0*/)[_j]=(/*(IRF4.6item*/((((T80*)a1))->_storage/*0*/)[(_j)+(1)]/*)*/);
  151. /*]*/
  152. _j=(_j)+(1);
  153. _i=(_i)-(1);
  154. }
  155. }
  156. /*FI]*/
  157. }
  158.  
  159.  
  160. T0* r79feature_name(T79* C,T0* a1){
  161. T0* R=NULL;
  162. T2 _i=0;
  163. /*[IF*/
  164. if((X77to_key((C)->_first/*0*/))==((void*)(a1))){
  165. R=(C)->_first/*0*/;
  166. }
  167.  else if(((C)->_remainder/*4*/)==((void*)(NULL))){
  168. }
  169. else{
  170. _i=((T80*)((C)->_remainder/*4*/))->_upper/*8*/;
  171. while (!(((_i)<(0))||((a1)==((void*)(X77to_key(/*(IRF4.6item*/(((T80*)((C)->_remainder/*4*/))->_storage/*0*/)[_i]/*)*/)))))) {
  172. _i=(_i)-(1);
  173. }
  174. /*[IF*/
  175. if((_i)>=(0)){
  176. R=/*(IRF4.6item*/(((T80*)((C)->_remainder/*4*/))->_storage/*0*/)[_i]/*)*/;
  177. }
  178. /*FI]*/
  179. }
  180. /*FI]*/
  181. return R;
  182. }
  183.  
  184.  
  185. void r79short_for_creation(T79* C){
  186. T2 _i=0;
  187. _i=1;
  188. while (!((_i)>(r79count(C)))) {
  189. r39a_feature((T39*)(oBC11short_print),r79item(C,_i));
  190. _i=(_i)+(1);
  191. }
  192. }
  193.  
  194.  
  195. void r79fe_multiple(T0* a1,T0* a2){
  196. r67add_position(X77start_position(a1));
  197. r67add_position(X77start_position(a2));
  198. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms79_61088);
  199. r67fatal_error((T67*)(oBC11eh),b1);
  200. }/*]*/
  201. }
  202.  
  203.  
  204. T6 r79has(T79* C,T0* a1){
  205. T6 R=0;
  206. R=(r79index_of(C,a1))>(0);
  207. return R;
  208. }
  209. /*No:FEATURE_NAME_LIST.make_1*/
  210.  
  211.  
  212. void r79add_last(T79* C,T0* a1){
  213. T0* _fn2=NULL;
  214. _fn2=r79feature_name(C,X77to_key(a1));
  215. /*[IF*/
  216. if((_fn2)!=((void*)(NULL))){
  217. r79fe_multiple(_fn2,a1);
  218. }
  219. /*FI]*/
  220. /*[IF*/
  221. if(((C)->_remainder/*4*/)==((void*)(NULL))){
  222. {T80*n=malloc(sizeof(*n));
  223. *n=M80;
  224. r80with_capacity(n,4);
  225. C->_remainder=(T0*)n;
  226. }
  227. }
  228. /*FI]*/
  229. r80add_last((T80*)((C)->_remainder/*4*/),a1);
  230. }
  231.  
  232.  
  233. T0* r79item(T79* C,T2 a1){
  234. T0* R=NULL;
  235. /*[IF*/
  236. if((a1)==(1)){
  237. R=(C)->_first/*0*/;
  238. }
  239. else{
  240. R=/*(IRF4.6item*/(((T80*)((C)->_remainder/*4*/))->_storage/*0*/)[(a1)-(2)]/*)*/;
  241. }
  242. /*FI]*/
  243. return R;
  244. }
  245. /*No:FEATURE_NAME_LIST.first*/
  246.  
  247.  
  248. T2 r79count(T79* C){
  249. T2 R=0;
  250. /*[IF*/
  251. if(((C)->_remainder/*4*/)==((void*)(NULL))){
  252. R=1;
  253. }
  254. else{
  255. R=(((T80*)((C)->_remainder/*4*/))->_upper/*8*/)+(2);
  256. }
  257. /*FI]*/
  258. return R;
  259. }
  260.  
  261.  
  262. T6 r79for_short(T79* C,T0* a1,T6 a2,T0* a3,T6 a4,T0* a5,T0* a6){
  263. T6 R=0;
  264. T0* _rf=NULL;
  265. T0* _fn=NULL;
  266. T2 _i=0;
  267. R=a2;
  268. _i=1;
  269. while (!((_i)>(r79count(C)))) {
  270. _fn=r79item(C,_i);
  271. _rf=r310get_rf_with(((T310*)a6),_fn);
  272. /*[IF*/
  273. if(!(X311fast_has(a5,_rf))){
  274. X311add_last(a5,_rf);
  275. /*[IF*/
  276. if(!(a4)){
  277. /*[IF*/
  278. if(!(a2)){
  279. R=1;
  280. r89do_heading_for_short(((T89*)a1),a3);
  281. }
  282. /*FI]*/
  283. r39a_run_feature((T39*)(oBC11short_print),_rf);
  284. }
  285. /*FI]*/
  286. }
  287. /*FI]*/
  288. _i=(_i)+(1);
  289. }
  290. return R;
  291. }
  292. /*No:FEATURE_NAME_LIST.remainder*/
  293.  
  294.  
  295. T2 r79index_of(T79* C,T0* a1){
  296. T2 R=0;
  297. T0* _fn_key=NULL;
  298. _fn_key=X77to_key(a1);
  299. /*[IF*/
  300. if((X77to_key((C)->_first/*0*/))==((void*)(_fn_key))){
  301. R=1;
  302. }
  303.  else if(((C)->_remainder/*4*/)==((void*)(NULL))){
  304. }
  305. else{
  306. R=((T80*)((C)->_remainder/*4*/))->_upper/*8*/;
  307. while (!(((R)<(0))||((_fn_key)==((void*)(X77to_key(/*(IRF4.6item*/(((T80*)((C)->_remainder/*4*/))->_storage/*0*/)[R]/*)*/)))))) {
  308. R=(R)-(1);
  309. }
  310. /*[IF*/
  311. if((R)<(0)){
  312. R=0;
  313. }
  314. else{
  315. R=(R)+(2);
  316. }
  317. /*FI]*/
  318. }
  319. /*FI]*/
  320. return R;
  321. }
  322.  
  323.  
  324. void r79short(T79* C){
  325. T2 _i=0;
  326. _i=1;
  327. while (!((_i)>(r79count(C)))) {
  328. X77short(r79item(C,_i));
  329. _i=(_i)+(1);
  330. /*[IF*/
  331. if((_i)<=(r79count(C))){
  332. r39hook_or((T39*)(oBC11short_print),((T0*)ms79_9303),((T0*)ms79_158));
  333. }
  334. /*FI]*/
  335. }
  336. }
  337. /*No:FEATURE_NAME_LIST.fatal_error*/
  338. /*No:CLASS_INVARIANT.start_position*/
  339. /*No:CLASS_INVARIANT.header_comment*/
  340.  
  341.  
  342. void r40make(T40* C,T0* a1,T0* a2,T0* a3){
  343. C->_start_position=a1;
  344. C->_header_comment=a2;
  345. C->_list=a3;
  346. }
  347. /*No:CLASS_INVARIANT.set_header_comment*/
  348. /*No:CLASS_INVARIANT.list*/
  349.  
  350.  
  351. void r40short(T40* C,T0* a1){
  352. T2 _i=0;
  353. r22header_comment_for(((T22*)a1),(T0*)C);
  354. r39hook_or((T39*)(oBC11short_print),((T0*)ms40_5929aaaa),((T0*)ms40_6590));
  355. /*[IF*/
  356. if(((C)->_header_comment/*4*/)==((void*)(NULL))){
  357. r39hook_or((T39*)(oBC11short_print),((T0*)ms40_5978aaa),((T0*)ms40_0aaaaaaaaaaaaaaaaaa));
  358. }
  359. else{
  360. r39hook_or((T39*)(oBC11short_print),((T0*)ms40_6027aaa),((T0*)ms40_0aaaaaaaaaaaaaaaaaaaa));
  361. r52short((T52*)((C)->_header_comment/*4*/),((T0*)ms40_6076aaa),((T0*)ms40_2358),((T0*)ms40_6125a),((T0*)ms40_11aaaa));
  362. r39hook_or((T39*)(oBC11short_print),((T0*)ms40_6174aa),((T0*)ms40_0aaaaaaaaaaaaaaaaaaa));
  363. }
  364. /*FI]*/
  365. /*[IF*/
  366. if(((C)->_list/*8*/)==((void*)(NULL))){
  367. r39hook_or((T39*)(oBC11short_print),((T0*)ms40_6223),((T0*)ms40_0a));
  368. }
  369. else{
  370. r39hook_or((T39*)(oBC11short_print),((T0*)ms40_6272aa),((T0*)ms40_0aaaaaaaaaaaaaaaaa));
  371. _i=1;
  372. while (!((_i)==(((T50*)((C)->_list/*8*/))->_upper/*8*/))) {
  373. r49short((T49*)(r50item((T50*)((C)->_list/*8*/),_i)),((T0*)ms40_6321aaa),((T0*)ms40_306a),((T0*)ms40_5880aaa),((T0*)ms40_0aaaaaaaaaaaaaaaa),((T0*)ms40_5929aaa),((T0*)ms40_0aaaaaaaaaaaaaaa),((T0*)ms40_5978aa),((T0*)ms40_186a),((T0*)ms40_6027aa),((T0*)ms40_0aaaaaaaaaaaaaa),((T0*)ms40_6076aa),((T0*)ms40_0aaaaaaaaaaaaa),((T0*)ms40_6125),((T0*)ms40_60a),((T0*)ms40_6174a),((T0*)ms40_11aaa),((T0*)ms40_6223aa),((T0*)ms40_0aaaaaaaaaaaa),((T0*)ms40_6272a),((T0*)ms40_656a),((T0*)ms40_6321aa),((T0*)ms40_11aa),((T0*)ms40_5880aa),((T0*)ms40_0aaaaaaaaaaa),((T0*)ms40_5929aa),((T0*)ms40_0aaaaaaaaaa));
  374. _i=(_i)+(1);
  375. }
  376. r49short((T49*)(r50item((T50*)((C)->_list/*8*/),_i)),((T0*)ms40_6321a),((T0*)ms40_306),((T0*)ms40_5880a),((T0*)ms40_0aaaaaaaaa),((T0*)ms40_5929a),((T0*)ms40_0aaaaaaaa),((T0*)ms40_5978a),((T0*)ms40_186),((T0*)ms40_6027a),((T0*)ms40_0aaaaaaa),((T0*)ms40_6076a),((T0*)ms40_0aaaaaa),((T0*)ms40_5978),((T0*)ms40_60),((T0*)ms40_6174),((T0*)ms40_11a),((T0*)ms40_6223a),((T0*)ms40_0aaaaa),((T0*)ms40_6272),((T0*)ms40_656),((T0*)ms40_6321),((T0*)ms40_11),((T0*)ms40_5880),((T0*)ms40_0aaaa),((T0*)ms40_5929),((T0*)ms40_0aaa));
  377. r39hook_or((T39*)(oBC11short_print),((T0*)ms40_6027),((T0*)ms40_0aa));
  378. }
  379. /*FI]*/
  380. r39hook_or((T39*)(oBC11short_print),((T0*)ms40_6076),((T0*)ms40_0));
  381. }
  382. /*No:CLASS_NAME_LIST.make_1*/
  383.  
  384.  
  385. T6 r183gives_permission_to_any(T183* C){
  386. T6 R=0;
  387. T2 _i=0;
  388. _i=r183count(C);
  389. while (!((R)||((_i)==(0)))) {
  390. R=(((T47*)(r183item(C,_i)))->_to_string/*0*/)==((void*)(((T0*)ms13_714)));
  391. _i=(_i)-(1);
  392. }
  393. return R;
  394. }
  395.  
  396.  
  397. void r183add_last(T183* C,T0* a1){
  398. T2 _i=0;
  399. _i=r183index_of(C,a1);
  400. /*[IF*/
  401. if((_i)>(0)){
  402. r67add_position(((T47*)(r183item(C,_i)))->_start_position/*4*/);
  403. r183warning((((T47*)a1))->_start_position/*4*/,((T0*)ms183_54510));
  404. }
  405. /*FI]*/
  406. /*[IF*/
  407. if(((C)->_remainder/*4*/)==((void*)(NULL))){
  408. {T184*n=malloc(sizeof(*n));
  409. *n=M184;
  410. r184with_capacity(n,4);
  411. C->_remainder=(T0*)n;
  412. }
  413. }
  414. /*FI]*/
  415. r184add_last((T184*)((C)->_remainder/*4*/),a1);
  416. }
  417.  
  418.  
  419. void r183merge(T183* C,T0* a1,T0* a2){
  420. T0* _cn=NULL;
  421. T2 _i=0;
  422. C->_first=r183item(((T183*)a1),1);
  423. {T184*n=malloc(sizeof(*n));
  424. *n=M184;
  425. r184with_capacity(n,((r183count(((T183*)a1)))+(r183count(((T183*)a2))))-(1));
  426. C->_remainder=(T0*)n;
  427. }
  428. _i=r183count(((T183*)a1));
  429. while (!((_i)==(1))) {
  430. r184add_last((T184*)((C)->_remainder/*4*/),r183item(((T183*)a1),_i));
  431. _i=(_i)-(1);
  432. }
  433. _i=r183count(((T183*)a2));
  434. while (!((_i)==(0))) {
  435. _cn=r183item(((T183*)a2),_i);
  436. /*[IF*/
  437. if((r183index_of(C,_cn))==(0)){
  438. r184add_last((T184*)((C)->_remainder/*4*/),_cn);
  439. }
  440. /*FI]*/
  441. _i=(_i)-(1);
  442. }
  443. }
  444.  
  445.  
  446. T0* r183item(T183* C,T2 a1){
  447. T0* R=NULL;
  448. /*[IF*/
  449. if((a1)==(1)){
  450. R=(C)->_first/*0*/;
  451. }
  452. else{
  453. R=/*(IRF4.6item*/(((T184*)((C)->_remainder/*4*/))->_storage/*0*/)[(a1)-(2)]/*)*/;
  454. }
  455. /*FI]*/
  456. return R;
  457. }
  458.  
  459.  
  460. void r183warning(T0* a1,T0* a2){
  461. r67add_position(a1);
  462. r67warning((T67*)(oBC11eh),a2);
  463. }
  464. /*No:CLASS_NAME_LIST.first*/
  465.  
  466.  
  467. T2 r183count(T183* C){
  468. T2 R=0;
  469. /*[IF*/
  470. if(((C)->_remainder/*4*/)==((void*)(NULL))){
  471. R=1;
  472. }
  473. else{
  474. R=(2)+(((T184*)((C)->_remainder/*4*/))->_upper/*8*/);
  475. }
  476. /*FI]*/
  477. return R;
  478. }
  479.  
  480.  
  481. T6 r183gives_permission_to(T183* C,T0* a1){
  482. T6 R=0;
  483. T2 _i=0;
  484. /*[IF*/
  485. if((r183index_of(C,a1))>(0)){
  486. R=1;
  487. }
  488. else{
  489. _i=r183count(C);
  490. while (!((R)||((_i)==(0)))) {
  491. R=r47is_subclass_of(((T47*)a1),r183item(C,_i));
  492. _i=(_i)-(1);
  493. }
  494. }
  495. /*FI]*/
  496. return R;
  497. }
  498. /*No:CLASS_NAME_LIST.us_any*/
  499. /*No:CLASS_NAME_LIST.remainder*/
  500.  
  501.  
  502. T2 r183index_of(T183* C,T0* a1){
  503. T2 R=0;
  504. T0* _to_string=NULL;
  505. _to_string=(((T47*)a1))->_to_string/*0*/;
  506. R=r183count(C);
  507. while (!(((R)==(0))||((_to_string)==((void*)(((T47*)(r183item(C,R)))->_to_string/*0*/))))) {
  508. R=(R)-(1);
  509. }
  510. return R;
  511. }
  512. /*No:IMPLICIT_CURRENT.start_position*/
  513.  
  514.  
  515. T0* r181add_comment(T181* C,T0* a1){
  516. T0* R=NULL;
  517. /*[IF*/
  518. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  519. R=(T0*)C;
  520. }
  521. else{
  522. {T218*n=malloc(sizeof(*n));
  523. *n=M218;
  524. r218make(n,(T0*)C,a1);
  525. R=(T0*)n;
  526. }
  527. }
  528. /*FI]*/
  529. return R;
  530. }
  531. /*No:IMPLICIT_CURRENT.is_written*/
  532.  
  533.  
  534. T2 r181to_integer(T181* C){
  535. T2 R=0;
  536. r181error((C)->_start_position/*4*/,((T0*)ms12_45846));
  537. return R;
  538. }
  539.  
  540.  
  541. T0* r181to_runnable(T181* C,T0* a1){
  542. T0* R=NULL;
  543. /*[IF*/
  544. if(((C)->_result_type/*8*/)==((void*)(NULL))){
  545. C->_result_type=a1;
  546. R=(T0*)C;
  547. }
  548.  else if(((C)->_result_type/*8*/)==((void*)(a1))){
  549. R=(T0*)C;
  550. }
  551. else{
  552. {T181*n=malloc(sizeof(*n));
  553. *n=M181;
  554. /*[IRF3.3make*/((((T181*)(n)))->_start_position)=((C)->_start_position/*4*/);
  555. /*]*/
  556. R=(T0*)n;
  557. }
  558. R=r181to_runnable(((T181*)R),a1);
  559. }
  560. /*FI]*/
  561. return R;
  562. }
  563. /*No:IMPLICIT_CURRENT.fz_iinaiv*/
  564. /*No:IMPLICIT_CURRENT.result_type*/
  565.  
  566.  
  567. void r181error(T0* a1,T0* a2){
  568. r67add_position(a1);
  569. r67error((T67*)(oBC11eh),a2);
  570. }
  571. /*No:IMPLICIT_CURRENT.precedence*/
  572. /*No:IMPLICIT_CURRENT.make*/
  573. /*No:IMPLICIT_CURRENT.bracketed_short*/
  574. /*No:IMPLICIT_CURRENT.is_current*/
  575. /*No:IMPLICIT_CURRENT.is_void*/
  576. /*No:IMPLICIT_CURRENT.short_target*/
  577. /*No:IMPLICIT_CURRENT.short*/
  578. /*No:IMPLICIT_CURRENT.us_current*/
  579. /*No:IMPLICIT_CURRENT.atomic_precedence*/
  580. /*No:TMP_NAME.fz_once*/
  581.  
  582.  
  583. T6 r96look_in(T0* a1){
  584. T6 R=0;
  585. T2 _i=0;
  586. _i=(((T34*)a1))->_upper/*8*/;
  587. while (!((R)||((_i)==(0)))) {
  588. R=r7same_as((T7*)(r34item(((T34*)a1),_i)),oBC96tmp_string);
  589. _i=(_i)-(1);
  590. }
  591. return R;
  592. }
  593. /*No:TMP_NAME.fz_old*/
  594. /*No:TMP_NAME.fz_check*/
  595.  
  596.  
  597. T0* r96start_position(T96* C){
  598. T0* R=NULL;
  599. {T69*n=malloc(sizeof(*n));
  600. *n=M69;
  601. r69make(n,(C)->_li/*4*/,(C)->_co/*8*/);
  602. R=(T0*)n;
  603. }
  604. return R;
  605. }
  606.  
  607.  
  608. T0* r96to_string(T96* C){
  609. T0* R=NULL;
  610. /*[IF*/
  611. if(((C)->_unique_string_memory/*0*/)==((void*)(NULL))){
  612. R=r78item(oBC96tmp_string);
  613. C->_unique_string_memory=R;
  614. }
  615. else{
  616. R=(C)->_unique_string_memory/*0*/;
  617. }
  618. /*FI]*/
  619. return R;
  620. }
  621. /*No:TMP_NAME.fz_if*/
  622.  
  623.  
  624. T0* r96to_prefix_name(T96* C){
  625. T0* R=NULL;
  626. {T129*n=malloc(sizeof(*n));
  627. *n=M129;
  628. r129make(n,oBC96tmp_string,r96pos((C)->_li/*4*/,(C)->_co/*8*/));
  629. R=(T0*)n;
  630. }
  631. return R;
  632. }
  633. /*No:TMP_NAME.fz_ensure*/
  634. T0*oBC96keyword_p=NULL;
  635. /*No:TMP_NAME.unique_string_memory*/
  636. /*No:TMP_NAME.fz_frozen*/
  637. /*No:TMP_NAME.fz_do*/
  638. /*No:TMP_NAME.co*/
  639. /*No:TMP_NAME.fz_as*/
  640. /*No:TMP_NAME.li*/
  641. T0*oBC96keyword_u=NULL;
  642. /*No:TMP_NAME.fz_then*/
  643.  
  644.  
  645. T0* r96to_argument_name1(T96* C){
  646. T0* R=NULL;
  647. {T178*n=malloc(sizeof(*n));
  648. *n=M178;
  649. r178make(n,r96pos((C)->_li/*4*/,(C)->_co/*8*/),oBC96tmp_string);
  650. R=(T0*)n;
  651. }
  652. return R;
  653. }
  654.  
  655.  
  656. T0* r96to_infix_name(T0* a1){
  657. T0* R=NULL;
  658. {T125*n=malloc(sizeof(*n));
  659. *n=M125;
  660. r125make(n,oBC96tmp_string,a1);
  661. R=(T0*)n;
  662. }
  663. return R;
  664. }
  665. /*No:TMP_NAME.us_void*/
  666. /*No:TMP_NAME.fz_true*/
  667. /*No:TMP_NAME.extend*/
  668. /*No:TMP_NAME.fz_rename*/
  669. /*No:TMP_NAME.fz_rescue*/
  670. /*No:TMP_NAME.fz_indexing*/
  671. /*No:TMP_NAME.fz_when*/
  672.  
  673.  
  674. T0* r96to_simple_feature_name(T96* C){
  675. T0* R=NULL;
  676. {T135*n=malloc(sizeof(*n));
  677. *n=M135;
  678. r135make(n,oBC96tmp_string,r96pos((C)->_li/*4*/,(C)->_co/*8*/));
  679. R=(T0*)n;
  680. }
  681. return R;
  682. }
  683. /*No:TMP_NAME.fz_is*/
  684. T0*oBC96keyword_l=NULL;
  685.  
  686.  
  687. T6 r96is_result(void){
  688. T6 R=0;
  689. /*[IF*/
  690. if((((T7*)(oBC96tmp_string))->_count/*4*/)==(6)){
  691. R=r7same_as((T7*)(((T0*)ms13_7404)),oBC96tmp_string);
  692. }
  693. /*FI]*/
  694. return R;
  695. }
  696. /*No:TMP_NAME.fz_elseif*/
  697.  
  698.  
  699. T0* r96to_local_name1(T96* C){
  700. T0* R=NULL;
  701. {T171*n=malloc(sizeof(*n));
  702. *n=M171;
  703. r171make(n,r96pos((C)->_li/*4*/,(C)->_co/*8*/),oBC96tmp_string);
  704. R=(T0*)n;
  705. }
  706. return R;
  707. }
  708. /*No:TMP_NAME.fz_feature*/
  709. /*No:TMP_NAME.fz_debug*/
  710. /*No:TMP_NAME.fz_creation*/
  711. T0*oBC96keyword_c=NULL;
  712. /*No:TMP_NAME.fz_select*/
  713. /*No:TMP_NAME.fz_loop*/
  714. /*No:TMP_NAME.fz_obsolete*/
  715. /*No:TMP_NAME.us_or*/
  716. /*No:TMP_NAME.count*/
  717. /*No:TMP_NAME.fz_alias*/
  718. /*No:TMP_NAME.fz_expanded*/
  719. /*No:TMP_NAME.make*/
  720.  
  721.  
  722. T6 r96is_current(void){
  723. T6 R=0;
  724. /*[IF*/
  725. if((((T7*)(oBC96tmp_string))->_count/*4*/)==(7)){
  726. R=r7same_as((T7*)(((T0*)ms13_9380)),oBC96tmp_string);
  727. }
  728. /*FI]*/
  729. return R;
  730. }
  731. /*No:TMP_NAME.us_implies*/
  732. /*No:TMP_NAME.fz_class*/
  733. /*No:TMP_NAME.fz_strip*/
  734. /*No:TMP_NAME.fz_prefix*/
  735. /*No:TMP_NAME.fz_infix*/
  736.  
  737.  
  738. T0* r96to_infix_name_use(T96* C){
  739. T0* R=NULL;
  740. {T125*n=malloc(sizeof(*n));
  741. *n=M125;
  742. r125make(n,oBC96tmp_string,r96pos((C)->_li/*4*/,(C)->_co/*8*/));
  743. R=(T0*)n;
  744. }
  745. return R;
  746. }
  747. /*No:TMP_NAME.fz_unique*/
  748. T0*oBC96tmp_string=NULL;
  749. /*No:TMP_NAME.fz_export*/
  750. T0*oBC96keyword_r=NULL;
  751. /*No:TMP_NAME.us_precursor*/
  752. /*No:TMP_NAME.fz_variant*/
  753. /*No:TMP_NAME.fz_inherit*/
  754. /*No:TMP_NAME.fz_inspect*/
  755. /*No:TMP_NAME.fz_local*/
  756. /*No:TMP_NAME.us_result*/
  757. T0*oBC96keyword_d=NULL;
  758. /*No:TMP_NAME.fz_all*/
  759. /*No:TMP_NAME.fz_redefine*/
  760.  
  761.  
  762. T0* r96to_tag_name(T96* C){
  763. T0* R=NULL;
  764. {T54*n=malloc(sizeof(*n));
  765. *n=M54;
  766. r54make(n,oBC96tmp_string,r96pos((C)->_li/*4*/,(C)->_co/*8*/));
  767. R=(T0*)n;
  768. }
  769. return R;
  770. }
  771. /*No:TMP_NAME.fz_separate*/
  772.  
  773.  
  774. T0* r96to_e_void(T96* C){
  775. T0* R=NULL;
  776. {T144*n=malloc(sizeof(*n));
  777. *n=M144;
  778. /*[IRF3.3make*/((((T144*)(n)))->_start_position)=(r96pos((C)->_li/*4*/,(C)->_co/*8*/));
  779. /*]*/
  780. R=(T0*)n;
  781. }
  782. return R;
  783. }
  784. /*No:TMP_NAME.fz_require*/
  785. T0*oBC96keyword_i=NULL;
  786. /*No:TMP_NAME.fz_retry*/
  787. /*No:TMP_NAME.us_xor*/
  788. /*No:TMP_NAME.fz_invariant*/
  789.  
  790.  
  791. T0* r96pos(T2 a1,T2 a2){
  792. T0* R=NULL;
  793. {T69*n=malloc(sizeof(*n));
  794. *n=M69;
  795. r69make(n,a1,a2);
  796. R=(T0*)n;
  797. }
  798. return R;
  799. }
  800. /*No:TMP_NAME.fz_until*/
  801. T0*oBC96keyword_s=NULL;
  802. /*No:TMP_NAME.us_current*/
  803. T0*oBC96keyword_e=NULL;
  804.  
  805.  
  806. void r96initialize(T96* C,T2 a1,T2 a2){
  807. C->_li=a1;
  808. C->_co=a2;
  809. /*[IRF3.3clear*/((((T7*)((T7*)(oBC96tmp_string))))->_count)=(0);
  810. /*]*/
  811. C->_unique_string_memory=NULL;
  812. }
  813. /*No:TMP_NAME.fz_else*/
  814.  
  815.  
  816. T0* r96to_local_name2(T96* C,T0* a1,T2 a2){
  817. T0* R=NULL;
  818. {T168*n=malloc(sizeof(*n));
  819. *n=M168;
  820. r168refer_to(n,r96pos((C)->_li/*4*/,(C)->_co/*8*/),a1,a2);
  821. R=(T0*)n;
  822. }
  823. return R;
  824. }
  825.  
  826.  
  827. T6 r96isa_keyword(void){
  828. T6 R=0;
  829. T3 _c=0;
  830. _c=r3to_lower(/*(IRF4.6item*/(((T7*)(oBC96tmp_string))->_storage/*0*/)[(1)-(1)]/*)*/);
  831. {int z1=_c;
  832.  
  833. if((97==z1)){
  834. R=r96look_in(oBC96keyword_a);
  835. }
  836.  else 
  837. if((99==z1)){
  838. R=r96look_in(oBC96keyword_c);
  839. }
  840.  else 
  841. if((100==z1)){
  842. R=r96look_in(oBC96keyword_d);
  843. }
  844.  else 
  845. if((101==z1)){
  846. R=r96look_in(oBC96keyword_e);
  847. }
  848.  else 
  849. if((102==z1)){
  850. R=r96look_in(oBC96keyword_f);
  851. }
  852.  else 
  853. if((105==z1)){
  854. R=r96look_in(oBC96keyword_i);
  855. }
  856.  else 
  857. if((108==z1)){
  858. R=r96look_in(oBC96keyword_l);
  859. }
  860.  else 
  861. if((111==z1)){
  862. R=r96look_in(oBC96keyword_o);
  863. }
  864.  else 
  865. if((112==z1)){
  866. R=r96look_in(oBC96keyword_p);
  867. }
  868.  else 
  869. if((114==z1)){
  870. R=r96look_in(oBC96keyword_r);
  871. }
  872.  else 
  873. if((115==z1)){
  874. R=r96look_in(oBC96keyword_s);
  875. }
  876.  else 
  877. if((116==z1)){
  878. R=r96look_in(oBC96keyword_t);
  879. }
  880.  else 
  881. if((117==z1)){
  882. R=r96look_in(oBC96keyword_u);
  883. }
  884.  else 
  885. if((118==z1)){
  886. R=r7same_as((T7*)(((T0*)ms12_9506)),oBC96tmp_string);
  887. }
  888.  else 
  889. if((119==z1)){
  890. R=r7same_as((T7*)(((T0*)ms12_1776)),oBC96tmp_string);
  891. }
  892.  else 
  893. if((120==z1)){
  894. R=r7same_as((T7*)(((T0*)ms13_1053a)),oBC96tmp_string);
  895. }
  896. }
  897. return R;
  898. }
  899. /*No:TMP_NAME.fz_deferred*/
  900. /*No:TMP_NAME.fz_like*/
  901.  
  902.  
  903. T0* r96to_class_name(T96* C){
  904. T0* R=NULL;
  905. {T47*n=malloc(sizeof(*n));
  906. *n=M47;
  907. r47make(n,oBC96tmp_string,r96pos((C)->_li/*4*/,(C)->_co/*8*/));
  908. R=(T0*)n;
  909. }
  910. return R;
  911. }
  912. T0*oBC96keyword_o=NULL;
  913.  
  914.  
  915. T0* r96to_argument_name2(T96* C,T0* a1,T2 a2){
  916. T0* R=NULL;
  917. {T176*n=malloc(sizeof(*n));
  918. *n=M176;
  919. r176refer_to(n,r96pos((C)->_li/*4*/,(C)->_co/*8*/),a1,a2);
  920. R=(T0*)n;
  921. }
  922. return R;
  923. }
  924. /*No:TMP_NAME.fz_end*/
  925. /*No:TMP_NAME.fz_undefine*/
  926. T0*oBC96keyword_a=NULL;
  927. T0*oBC96keyword_t=NULL;
  928. /*No:TMP_NAME.fz_external*/
  929. /*No:TMP_NAME.fz_from*/
  930. /*No:TMP_NAME.fz_false*/
  931.  
  932.  
  933. T6 r96is_void(void){
  934. T6 R=0;
  935. /*[IF*/
  936. if((((T7*)(oBC96tmp_string))->_count/*4*/)==(4)){
  937. R=r7same_as((T7*)(((T0*)ms13_1648)),oBC96tmp_string);
  938. }
  939. /*FI]*/
  940. return R;
  941. }
  942. /*No:TMP_NAME.us_and*/
  943. T0*oBC96keyword_f=NULL;
  944. /*No:LOOP_VARIANT_1.nb_errors*/
  945.  
  946.  
  947. T0* r234start_position(T234* C){
  948. T0* R=NULL;
  949. R=X53start_position((C)->_expression/*8*/);
  950. return R;
  951. }
  952.  
  953.  
  954. T0* r234twin(T234* C){
  955. T0* R=NULL;
  956. R=malloc(sizeof(*C));
  957. *((T234*)R)=*C;
  958. return R;
  959. }
  960. /*No:LOOP_VARIANT_1.expression*/
  961.  
  962.  
  963. T0* r234to_runnable(T234* C,T0* a1){
  964. T0* R=NULL;
  965. T0* _e=NULL;
  966. /*[IF*/
  967. if(((C)->_current_type/*12*/)==((void*)(NULL))){
  968. C->_current_type=a1;
  969. _e=X53to_runnable((C)->_expression/*8*/,a1);
  970. /*[IF*/
  971. if((_e)==((void*)(NULL))){
  972. r234error(r234start_position(C),((T0*)ms230_20400));
  973. }
  974. else{
  975. C->_expression=_e;
  976. /*[IF*/
  977. if(!(X46is_integer(X53result_type((C)->_expression/*8*/)))){
  978. r234error(X53start_position((C)->_expression/*8*/),((T0*)ms230_86602));
  979. }
  980. /*FI]*/
  981. }
  982. /*FI]*/
  983. /*[IF*/
  984. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  985. R=(T0*)C;
  986. }
  987. /*FI]*/
  988. }
  989. else{
  990. R=r234twin(C);
  991. /*[IRF3.3set_current_type*/((((T234*)(((T234*)R))))->_current_type)=(NULL);
  992. /*]*/
  993. R=r234to_runnable(((T234*)R),a1);
  994. }
  995. /*FI]*/
  996. return R;
  997. }
  998. /*No:LOOP_VARIANT_1.set_current_type*/
  999. /*No:LOOP_VARIANT_1.current_type*/
  1000.  
  1001.  
  1002. void r234error(T0* a1,T0* a2){
  1003. r67add_position(a1);
  1004. r67error((T67*)(oBC11eh),a2);
  1005. }
  1006.  
  1007.  
  1008. void r234make(T234* C,T0* a1,T0* a2){
  1009. C->_comment=a2;
  1010. C->_expression=a1;
  1011. }
  1012. /*No:LOOP_VARIANT_1.comment*/
  1013. /*No:CALL_INFIX_IMPLIES.feature_name*/
  1014.  
  1015.  
  1016. T0* r100start_position(T100* C){
  1017. T0* R=NULL;
  1018. R=((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  1019. return R;
  1020. }
  1021.  
  1022.  
  1023. T0* r100add_comment(T100* C,T0* a1){
  1024. T0* R=NULL;
  1025. /*[IF*/
  1026. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  1027. R=(T0*)C;
  1028. }
  1029. else{
  1030. {T218*n=malloc(sizeof(*n));
  1031. *n=M218;
  1032. r218make(n,(T0*)C,a1);
  1033. R=(T0*)n;
  1034. }
  1035. }
  1036. /*FI]*/
  1037. return R;
  1038. }
  1039.  
  1040.  
  1041. T2 r100to_integer(T100* C){
  1042. T2 R=0;
  1043. r100error(r100start_position(C),((T0*)ms12_45846));
  1044. return R;
  1045. }
  1046.  
  1047.  
  1048. T0* r100to_runnable(T100* C,T0* a1){
  1049. T0* R=NULL;
  1050. T0* _rf=NULL;
  1051. T0* _tbee=NULL;
  1052. T0* _at=NULL;
  1053. T0* _tt=NULL;
  1054. T0* _a=NULL;
  1055. T0* _t=NULL;
  1056. _t=r100runnable_expression((C)->_target/*4*/,a1);
  1057. _a=r100runnable_args((C)->_arguments/*8*/,a1);
  1058. _tt=X53result_type(_t);
  1059. _at=X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1060. /*[IF*/
  1061. /*AF*//*AE*/
  1062. /*FI]*/
  1063. _rf=r100run_feature_for(C,_t,a1);
  1064. /*[IF*/
  1065. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  1066. C->_target=_t;
  1067. C->_arguments=_a;
  1068. C->_run_feature=_rf;
  1069. r100run_feature_match(C,a1);
  1070. R=(T0*)C;
  1071. }
  1072.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  1073. R=(T0*)C;
  1074. }
  1075. else{
  1076. {T100*n=malloc(sizeof(*n));
  1077. *n=M100;
  1078. r100with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  1079. R=(T0*)n;
  1080. }
  1081. }
  1082. /*FI]*/
  1083. return R;
  1084. }
  1085. /*No:CALL_INFIX_IMPLIES.fz_bad_argument*/
  1086. /*No:CALL_INFIX_IMPLIES.fz_iinaiv*/
  1087.  
  1088.  
  1089. T0* r100result_type(T100* C){
  1090. T0* R=NULL;
  1091. T0* _tla=NULL;
  1092. R=X312result_type((C)->_run_feature/*16*/);
  1093. /*[IF*/
  1094. if(X46is_like_current(R)){
  1095. R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  1096. }
  1097. else{
  1098. _tla=R;
  1099. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1100. case 246: 
  1101. break;
  1102. default:
  1103. _tla=NULL;
  1104. };/*[IF*/
  1105. if((_tla)!=((void*)(NULL))){
  1106. R=X46run_type(X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  1107. }
  1108. /*FI]*/
  1109. }
  1110. /*FI]*/
  1111. return R;
  1112. }
  1113. /*No:CALL_INFIX_IMPLIES.run_feature*/
  1114.  
  1115.  
  1116. T0* r100runnable_args(T0* a1,T0* a2){
  1117. T0* R=NULL;
  1118. R=r136to_runnable(((T136*)a1),a2);
  1119. /*[IF*/
  1120. if((R)==((void*)(NULL))){
  1121. r67add_position(r136start_position(((T136*)a1)));
  1122. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
  1123. r67fatal_error((T67*)(oBC11eh),b1);
  1124. }/*]*/
  1125. }
  1126. /*FI]*/
  1127. return R;
  1128. }
  1129.  
  1130.  
  1131. void r100bracketed_short(T100* C){
  1132. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
  1133. r100short(C);
  1134. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
  1135. }
  1136.  
  1137.  
  1138. void r100with(T100* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1139. C->_target=a1;
  1140. C->_feature_name=a2;
  1141. C->_arguments=a3;
  1142. C->_run_feature=a4;
  1143. r100run_feature_match(C,a5);
  1144. }
  1145. /*No:CALL_INFIX_IMPLIES.fatal_error*/
  1146.  
  1147.  
  1148. void r100run_feature_match(T100* C,T0* a1){
  1149. r100run_feature_has_result(C);
  1150. r136match_with((T136*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  1151. }
  1152. /*No:CALL_INFIX_IMPLIES.arguments*/
  1153.  
  1154.  
  1155. T0* r100runnable_expression(T0* a1,T0* a2){
  1156. T0* R=NULL;
  1157. R=X53to_runnable(a1,a2);
  1158. /*[IF*/
  1159. if((R)==((void*)(NULL))){
  1160. r67add_position(X53start_position(a1));
  1161. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
  1162. r67fatal_error((T67*)(oBC11eh),b1);
  1163. }/*]*/
  1164. }
  1165. /*FI]*/
  1166. return R;
  1167. }
  1168. /*No:CALL_INFIX_IMPLIES.implicit_cast*/
  1169. /*No:CALL_INFIX_IMPLIES.arg1*/
  1170.  
  1171.  
  1172. void r100run_feature_has_result(T100* C){
  1173. /*[IF*/
  1174. if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  1175. r67add_position(X312start_position((C)->_run_feature/*16*/));
  1176. r67add_position(((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  1177. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
  1178. r67fatal_error((T67*)(oBC11eh),b1);
  1179. }/*]*/
  1180. }
  1181. /*FI]*/
  1182. }
  1183.  
  1184.  
  1185. T0* r100run_feature_for(T100* C,T0* a1,T0* a2){
  1186. T0* R=NULL;
  1187. T0* _rc=NULL;
  1188. _rc=X46run_class(X53result_type(a1));
  1189. R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*12*/,a2);
  1190. return R;
  1191. }
  1192. /*No:CALL_INFIX_IMPLIES.target*/
  1193.  
  1194.  
  1195. void r100error(T0* a1,T0* a2){
  1196. r67add_position(a1);
  1197. r67error((T67*)(oBC11eh),a2);
  1198. }
  1199. /*No:CALL_INFIX_IMPLIES.precedence*/
  1200.  
  1201.  
  1202. void r100make(T100* C,T0* a1,T0* a2,T0* a3){
  1203. C->_target=a1;
  1204. {T125*n=malloc(sizeof(*n));
  1205. *n=M125;
  1206. r125make(n,r100operator(),a2);
  1207. C->_feature_name=(T0*)n;
  1208. }
  1209. {T136*n=malloc(sizeof(*n));
  1210. *n=M136;
  1211. /*[IRF3.3make_1*/((((T136*)(n)))->_first_one)=(a3);
  1212. /*]*/
  1213. C->_arguments=(T0*)n;
  1214. }
  1215. }
  1216. /*No:CALL_INFIX_IMPLIES.is_current*/
  1217. /*No:CALL_INFIX_IMPLIES.us_implies*/
  1218. /*No:CALL_INFIX_IMPLIES.short_print_feature_name*/
  1219. /*No:CALL_INFIX_IMPLIES.is_void*/
  1220.  
  1221.  
  1222. T0* r100operator(void){
  1223. T0* R=NULL;
  1224. R=((T0*)ms13_9513);
  1225. return R;
  1226. }
  1227.  
  1228.  
  1229. void r100short_target(T100* C){
  1230. r100bracketed_short(C);
  1231. /*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
  1232. r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
  1233. }/*]*/
  1234. }
  1235.  
  1236.  
  1237. void r100short(T100* C){
  1238. /*[IF*/
  1239. if((X53precedence((C)->_target/*4*/))==(13)){
  1240. X53short((C)->_target/*4*/);
  1241. /*[IRF3.6short_print_feature_name*/{T100* C1=C;
  1242. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  1243. }/*]*/
  1244. /*[IF*/
  1245. if((X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))==(13)){
  1246. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1247. }
  1248.  else if((3)>=(X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  1249. X53bracketed_short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1250. }
  1251. else{
  1252. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1253. }
  1254. /*FI]*/
  1255. }
  1256.  else if((X53precedence((C)->_target/*4*/))<(3)){
  1257. X53bracketed_short((C)->_target/*4*/);
  1258. /*[IRF3.6short_print_feature_name*/{T100* C1=C;
  1259. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  1260. }/*]*/
  1261. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1262. }
  1263. else{
  1264. X53short((C)->_target/*4*/);
  1265. /*[IRF3.6short_print_feature_name*/{T100* C1=C;
  1266. r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
  1267. }/*]*/
  1268. X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1269. }
  1270. /*FI]*/
  1271. }
  1272. /*No:CALL_INFIX_IMPLIES.atomic_precedence*/
  1273. /*No:RUN_FEATURE_11.use_current_state*/
  1274. /*No:RUN_FEATURE_11.rescue_compound*/
  1275. /*No:RUN_FEATURE_11.actuals_clients*/
  1276. /*No:RUN_FEATURE_11.arguments*/
  1277.  
  1278.  
  1279. void r356initialize(T356* C){
  1280. C->_arguments=((T289*)((C)->_base_feature/*32*/))->_arguments/*24*/;
  1281. /*[IF*/
  1282. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1283. /*[IF*/
  1284. if(!(r175is_runnable((T175*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1285. {T175*n=malloc(sizeof(*n));
  1286. *n=M175;
  1287. r175with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1288. C->_arguments=(T0*)n;
  1289. }
  1290. }
  1291. /*FI]*/
  1292. }
  1293. /*FI]*/
  1294. C->_result_type=X46to_runnable(((T289*)((C)->_base_feature/*32*/))->_result_type/*56*/,(C)->_current_type/*4*/);
  1295. C->_local_vars=((T289*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
  1296. /*[IF*/
  1297. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  1298. C->_local_vars=r166to_runnable((T166*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
  1299. }
  1300. /*FI]*/
  1301. C->_routine_body=((T289*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
  1302. /*[IF*/
  1303. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1304. C->_routine_body=r204to_runnable((T204*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
  1305. }
  1306. /*FI]*/
  1307. /*[IF*/
  1308. if(r73require_check((T73*)(oBC11run_control))){
  1309. C->_require_assertion=r289run_require((T0*)C);
  1310. }
  1311. /*FI]*/
  1312. /*[IF*/
  1313. if(r73ensure_check((T73*)(oBC11run_control))){
  1314. C->_ensure_assertion=r289run_ensure((T0*)C);
  1315. }
  1316. /*FI]*/
  1317. C->_rescue_compound=((T289*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
  1318. /*[IF*/
  1319. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  1320. /*[IRF3.3set_used*/((((T334*)((T334*)(oBC11exceptions_handler))))->_used)=(1);
  1321. /*]*/
  1322. C->_rescue_compound=r204to_runnable((T204*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
  1323. }
  1324. /*FI]*/
  1325. }
  1326.  
  1327.  
  1328. T0* r356start_position(T356* C){
  1329. T0* R=NULL;
  1330. R=r289start_position((T289*)((C)->_base_feature/*32*/));
  1331. return R;
  1332. }
  1333. /*No:RUN_FEATURE_11.require_assertion*/
  1334. /*No:RUN_FEATURE_11.clients_memory*/
  1335. /*No:RUN_FEATURE_11.ucs_not_computed*/
  1336. T0*oBC11exceptions_handler=NULL;
  1337. /*No:RUN_FEATURE_11.current_type*/
  1338.  
  1339.  
  1340. void r356add_client(T356* C,T0* a1){
  1341. T2 _i=0;
  1342. /*[IF*/
  1343. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  1344. {T321*n=malloc(sizeof(*n));
  1345. *n=M321;
  1346. r321with_capacity(n,4);
  1347. C->_actuals_clients=(T0*)n;
  1348. }
  1349. r321add_last((T321*)((C)->_actuals_clients/*12*/),a1);
  1350. }
  1351. else{
  1352. _i=r321fast_index_of((T321*)((C)->_actuals_clients/*12*/),a1);
  1353. /*[IF*/
  1354. if((_i)>(((T321*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  1355. r321add_last((T321*)((C)->_actuals_clients/*12*/),a1);
  1356. }
  1357. /*FI]*/
  1358. }
  1359. /*FI]*/
  1360. r310add_client((T310*)(r356run_class(C)),a1);
  1361. }
  1362.  
  1363.  
  1364. T0* r356run_class(T356* C){
  1365. T0* R=NULL;
  1366. R=X46run_class((C)->_current_type/*4*/);
  1367. return R;
  1368. }
  1369. /*No:RUN_FEATURE_11.result_type*/
  1370. /*No:RUN_FEATURE_11.base_feature*/
  1371. /*No:RUN_FEATURE_11.ensure_assertion*/
  1372.  
  1373.  
  1374. void r356make(T356* C,T0* a1,T0* a2,T0* a3){
  1375. C->_current_type=a1;
  1376. C->_name=a2;
  1377. C->_base_feature=a3;
  1378. /*[IRF3.5add_rf*/r317put(((T317*)(((T310*)(r356run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X77to_key(a2));
  1379. /*]*/
  1380. r59incr_magic_count((T59*)(oBC11small_eiffel));
  1381. C->_use_current_state=15;
  1382. r59push((T59*)(oBC11small_eiffel),(T0*)C);
  1383. r356initialize(C);
  1384. r59pop((T59*)(oBC11small_eiffel));
  1385. }
  1386. /*No:RUN_FEATURE_11.routine_body*/
  1387. /*No:RUN_FEATURE_11.name*/
  1388. /*No:RUN_FEATURE_11.local_vars*/
  1389.  
  1390.  
  1391. T2 r356arg_count(T356* C){
  1392. T2 R=0;
  1393. /*[IF*/
  1394. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1395. R=/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1396. }
  1397. /*FI]*/
  1398. return R;
  1399. }
  1400.  
  1401.  
  1402. T0* r356clients(T356* C){
  1403. T0* R=NULL;
  1404. T0* _bfbc=NULL;
  1405. T0* _bc=NULL;
  1406. /*[IF*/
  1407. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  1408. _bc=X46base_class((C)->_current_type/*4*/);
  1409. _bfbc=((T289*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  1410. /*[IF*/
  1411. if((_bc)==((void*)(_bfbc))){
  1412. R=((T289*)((C)->_base_feature/*32*/))->_clients/*20*/;
  1413. }
  1414. else{
  1415. R=r22clients_for(((T22*)_bc),(C)->_name/*16*/);
  1416. }
  1417. /*FI]*/
  1418. C->_clients_memory=R;
  1419. }
  1420. else{
  1421. R=(C)->_clients_memory/*8*/;
  1422. }
  1423. /*FI]*/
  1424. return R;
  1425. }
  1426.  
  1427.  
  1428. T6 r356is_exported_in(T356* C,T0* a1){
  1429. T6 R=0;
  1430. R=r94gives_permission_to((T94*)(r356clients(C)),a1);
  1431. return R;
  1432. }
  1433. /*No:PROC_CALL_N.feature_name*/
  1434.  
  1435.  
  1436. void r152run_feature_match(T152* C,T0* a1){
  1437. r152run_feature_has_no_result(C);
  1438. r136match_with((T136*)((C)->_arguments/*16*/),(C)->_run_feature/*12*/,a1);
  1439. }
  1440. /*No:PROC_CALL_N.arguments*/
  1441.  
  1442.  
  1443. T0* r152runnable_expression(T0* a1,T0* a2){
  1444. T0* R=NULL;
  1445. R=X53to_runnable(a1,a2);
  1446. /*[IF*/
  1447. if((R)==((void*)(NULL))){
  1448. r67add_position(X53start_position(a1));
  1449. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
  1450. r67fatal_error((T67*)(oBC11eh),b1);
  1451. }/*]*/
  1452. }
  1453. /*FI]*/
  1454. return R;
  1455. }
  1456.  
  1457.  
  1458. T0* r152start_position(T152* C){
  1459. T0* R=NULL;
  1460. R=X77start_position((C)->_feature_name/*8*/);
  1461. return R;
  1462. }
  1463.  
  1464.  
  1465. T0* r152add_comment(T152* C,T0* a1){
  1466. T0* R=NULL;
  1467. /*[IF*/
  1468. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  1469. R=(T0*)C;
  1470. }
  1471. /*AF*/else{
  1472. {T213*n=malloc(sizeof(*n));
  1473. *n=M213;
  1474. r213make(n,(T0*)C,a1);
  1475. R=(T0*)n;
  1476. }
  1477. }
  1478. /*FI]*/
  1479. return R;
  1480. }
  1481.  
  1482.  
  1483. void r152run_feature_has_no_result(T152* C){
  1484. /*[IF*/
  1485. if((X312result_type((C)->_run_feature/*12*/))!=((void*)(NULL))){
  1486. r67add_position(X312start_position((C)->_run_feature/*12*/));
  1487. r67add_position(X77start_position((C)->_feature_name/*8*/));
  1488. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms149_67122);
  1489. r67fatal_error((T67*)(oBC11eh),b1);
  1490. }/*]*/
  1491. }
  1492. /*FI]*/
  1493. }
  1494.  
  1495.  
  1496. T0* r152to_runnable(T152* C,T0* a1){
  1497. T0* R=NULL;
  1498. T0* _rf=NULL;
  1499. T0* _a=NULL;
  1500. T0* _t=NULL;
  1501. _t=r152runnable_expression((C)->_target/*4*/,a1);
  1502. _a=r152runnable_args((C)->_arguments/*16*/,a1);
  1503. _rf=r152run_feature_for(C,_t,a1);
  1504. /*[IF*/
  1505. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  1506. C->_target=_t;
  1507. C->_arguments=_a;
  1508. C->_run_feature=_rf;
  1509. r152run_feature_match(C,a1);
  1510. R=(T0*)C;
  1511. }
  1512.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*16*/)))){
  1513. R=(T0*)C;
  1514. }
  1515. else{
  1516. {T152*n=malloc(sizeof(*n));
  1517. *n=M152;
  1518. r152with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
  1519. R=(T0*)n;
  1520. }
  1521. }
  1522. /*FI]*/
  1523. return R;
  1524. }
  1525. /*No:PROC_CALL_N.fz_bad_argument*/
  1526. /*No:PROC_CALL_N.set_run_feature*/
  1527.  
  1528.  
  1529. T0* r152run_feature_for(T152* C,T0* a1,T0* a2){
  1530. T0* R=NULL;
  1531. T0* _rc=NULL;
  1532. _rc=X46run_class(X53result_type(a1));
  1533. R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*8*/,a2);
  1534. return R;
  1535. }
  1536. /*No:PROC_CALL_N.target*/
  1537. /*No:PROC_CALL_N.run_feature*/
  1538. /*No:PROC_CALL_N.end_mark_comment*/
  1539.  
  1540.  
  1541. void r152make(T152* C,T0* a1,T0* a2,T0* a3){
  1542. C->_target=a1;
  1543. C->_feature_name=a2;
  1544. C->_arguments=a3;
  1545. }
  1546.  
  1547.  
  1548. T0* r152runnable_args(T0* a1,T0* a2){
  1549. T0* R=NULL;
  1550. R=r136to_runnable(((T136*)a1),a2);
  1551. /*[IF*/
  1552. if((R)==((void*)(NULL))){
  1553. r67add_position(r136start_position(((T136*)a1)));
  1554. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
  1555. r67fatal_error((T67*)(oBC11eh),b1);
  1556. }/*]*/
  1557. }
  1558. /*FI]*/
  1559. return R;
  1560. }
  1561.  
  1562.  
  1563. T0* r152make_runnable(T152* C,T0* a1,T0* a2,T0* a3){
  1564. T0* R=NULL;
  1565. /*[IF*/
  1566. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  1567. C->_target=a1;
  1568. C->_arguments=a2;
  1569. C->_run_feature=a3;
  1570. R=(T0*)C;
  1571. }
  1572. else{
  1573. {T152*n=malloc(sizeof(*n));
  1574. *n=M152;
  1575. r152make(n,a1,(C)->_feature_name/*8*/,a2);
  1576. R=(T0*)n;
  1577. }
  1578. /*[IRF3.3set_run_feature*/((((T152*)(((T152*)R))))->_run_feature)=(a3);
  1579. /*]*/
  1580. }
  1581. /*FI]*/
  1582. return R;
  1583. }
  1584. /*No:PROC_CALL_N.arg_count*/
  1585.  
  1586.  
  1587. void r152with(T152* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1588. C->_target=a1;
  1589. C->_feature_name=a2;
  1590. C->_arguments=a3;
  1591. C->_run_feature=a4;
  1592. r152run_feature_match(C,a5);
  1593. }
  1594. /*No:PROC_CALL_N.fatal_error*/
  1595.  
  1596.